package ULHT.LIG2N1.RC.VO;

import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

public class QuestionListVO {

    private ArrayList<QuestionVO> perguntas;

    public QuestionListVO() {
        try {
            this.perguntas = FileManage.importQuestionListfromXML();
        } catch (FileNotFoundException ex) {
            loadQuestions();
            FileManage.exportQuestionListToXML(perguntas);
        }
    }

    public QuestionListVO(ArrayList<QuestionVO> perguntas) {
        this.perguntas = perguntas;
    }

    public ArrayList<QuestionVO> getPerguntas() {
        return perguntas;
    }

    public ArrayList<QuestionVO> getGameQuestions() {
        try {
            //Obtem toda a lista de perguntas
            ArrayList<QuestionVO> listaperguntas = this.perguntas;
            //Array list to store 15 perguntas (Game Questions)
            ArrayList<QuestionVO> gamequestionsfinal = new ArrayList<>();
            //baralha listaperguntas 
            Collections.shuffle(listaperguntas);
            //Obtem 15 perguntas da lista de perguntas total
            List gamequestions = listaperguntas.subList(1, 16);
            //baralha gamequestions 
            Collections.shuffle(gamequestions);
            //display elements of sub list.
            for (int i = 0; i < gamequestions.size(); i++) {
                gamequestionsfinal.addAll(gamequestions);
            }
            return gamequestionsfinal;
        } catch (ArrayIndexOutOfBoundsException ex) {
            Logger.getLogger(FileManage.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;
    }

    public void loadQuestions() {

        this.perguntas = new ArrayList<>();

        //Perguntas a adicionar para o ficheiro
        QuestionVO p1 = new QuestionVO(1, "Por quantos ossos é constituído o esqueleto humano?", " (A) 200 \n  (B) 199 \n  (C) 206 \n  (D) 321", "C");
        QuestionVO p2 = new QuestionVO(2, "Por quantos ossos é constituído o crânio?", " (A) 22 \n  (B) 29 \n  (C) 31 \n  (D) 20", "A");
        QuestionVO p3 = new QuestionVO(3, "Quantos músculos existem no corpo humano?", " (A) 300 \n  (B) 600 \n  (C) 610 \n  (D) 450", "B");
        QuestionVO p4 = new QuestionVO(4, "Uma articulação é a união entre quantos ossos?", " (A) 9 \n  (B) 3  \n  (C) 2 \n  (D) 6", "C");
        QuestionVO p5 = new QuestionVO(5, "Qual é o maior osso do corpo humano?", " (A) Tíbia \n  (B) Perónio \n  (C) Fémur \n  (D) Rádio", "C");
        QuestionVO p6 = new QuestionVO(6, "O aparelho locomotor é constituído por…", " (A) ossos, músculos e articulações \n  (B) pele, músculos e articulações \n  (C) coluna vertebral \n  (D) Ossos", "A");
        QuestionVO p7 = new QuestionVO(7, "Como se chama a camada da pele que está à superfície?", " (A) Derme \n  (B) Epiderme \n  (C) Nervo \n  (D) Pelo", "B");
        QuestionVO p8 = new QuestionVO(8, "Em quantas partes se divide o corpo humano?", " (A) 2 \n  (B) 3  \n  (C) 6 \n  (D) 4", "B");
        QuestionVO p9 = new QuestionVO(9, "Qual o órgão que protege o nosso corpo das agressões do meio?", " (A) Pele \n  (B) Músculos \n  (C) Ossos \n  (D) Cabelo", "A");
        QuestionVO p10 = new QuestionVO(10, "Que acontece se esforçarmos exageradamente os músculos?", " (A) Uma distenção \n  (B) Uma rotura \n  (C) Uma fractura \n  (D) Cansaço", "A");
        QuestionVO p11 = new QuestionVO(11, "Quem descobriu o Brasil?", " (A) Bartolomeu Dias \n  (B) Vasco da Gama \n  (C) Pedro Álvares Cabral \n  (D) Infante D. Henrique", "C");
        QuestionVO p12 = new QuestionVO(12, "Em que século começaram os Descobrimentos Portugueses?", " (A) XIV \n  (B) XV \n  (C) XVI \n  (D) XVII", "B");
        QuestionVO p13 = new QuestionVO(13, "Quem foi o primeiro rei da segunda dinastia?", " (A) D. Afonso Henriques \n  (B) D. João I \n  (C) D. Sebastião \n  (D) D. João II", "B");
        QuestionVO p14 = new QuestionVO(14, "Em que data recuperaram os portugueses a sua independência face ao domínio espanhol?", " (A) 1640 \n  (B) 1820 \n  (C) 1910 \n  (D) 1755", "A");
        QuestionVO p15 = new QuestionVO(15, "Quem foi o primeiro rei de Portugal?", " (A) D. Afonso I \n  (B) D. João I \n  (C) D. Manuel I \n  (D) D. Carlos", "A");
        QuestionVO p16 = new QuestionVO(16, "A que associas o castelo de Guimarães?", " (A) À cidade mais populosa de Portugal \n  (B) A D. Afonso Henriques \n  (C) A D. Raimundo \n  (D) Ao futebol ", "B");
        QuestionVO p17 = new QuestionVO(17, "Entre este povos, qual foi o primeiro a habitar o espaço português?", " (A) Celtas \n  (B) Visigodos \n  (C) Árabes \n  (D) Bascos", "A");
        QuestionVO p18 = new QuestionVO(18, "Local tradicionalmente habitada pelos Lusitanos?", " (A) Serra da Montejunto \n  (B) Montes Hermínios \n  (C) Beira Alta \n  (D) Montes Lusos", "B");
        QuestionVO p19 = new QuestionVO(19, "Quem pode beneficiar da licença parental?", " (A) Pai \n  (B) Mãe \n  (C) Só pai e Mãe \n  (D) Irmãos", "C");
        QuestionVO p20 = new QuestionVO(20, "Qual é o dia Internacional da Mulher", " (A) 8 de Março \n  (B) 8 de Maio \n  (C) 8 de Agosto \n  (D) 8 de Setembro", "A");
        QuestionVO p21 = new QuestionVO(21, "A primeira mulher a exercer o cargo de primeira Ministra em Portugal foi", " (A) Maria Barroso \n  (B) Maria de Lurdes Pintassilgo \n  (C) Manuela Ferreira Leite \n  (D) Isabel dos Santos", "B");
        QuestionVO p22 = new QuestionVO(22, "O que significa IP?", " (A) Internet Protocol \n  (B) Information Protocol \n  (C) Investigation Protocol \n  (D) Interest Protocol", "A");
        QuestionVO p23 = new QuestionVO(23, "O que significa ARP?", " (A) Address Request Protocol \n  (B) Address Read Protocol \n  (C) Address Resolution Protocol \n  (D) Address Resolve Protocol", "C");
        QuestionVO p24 = new QuestionVO(24, "O modelo de telemovel N85 é da Marca?", " (A) Sony \n  (B) Nokia \n  (C) Alcatel \n  (D) Samsung", "B");
        QuestionVO p25 = new QuestionVO(25, "Em que data foi construído o actual Navio Escola Sagres (SAGRES III)?", " (A) 1934 \n  (B) 1935 \n  (C) 1936 \n  (D) 1937", "D");
        QuestionVO p26 = new QuestionVO(26, "O peso bruto máximo do avião Lockheed C-130 Hercules é:", " (A) 65410 Kg \n  (B) 68938 Kg \n  (C) 74900 Kg \n  (D) 79380 Kg", "D");
        QuestionVO p27 = new QuestionVO(27, "Em que ano foi lançado o 1º vaivém norte americano (Discovery)?", " (A) 1982 \n  (B) 1983 \n  (C) 1984 \n  (D) 1985", "C");
        QuestionVO p28 = new QuestionVO(28, "Em que ano nasceu o Sumol?", " (A) 1935 \n  (B) 1945 \n  (C) 1948 \n  (D) 1955", "B");
        QuestionVO p29 = new QuestionVO(29, "Qual o comprimento aproximado do Rio Tejo?", " (A) 1007 Km \n  (B) 1025 Km \n  (C) 1030 Km \n  (D) 1038 Km", "A");
        QuestionVO p30 = new QuestionVO(30, "Em que data nasceu Walter Elias Disney?", "(A) 05 Jan. 1895 \n (B) 05 Dez. 1901 \n (C) 05 Mar. 1936 \n (D) 15 Dez. 1966", "B");

        //Adiciona objecto pergunta ao array list de perguntas
        perguntas.add(p1);
        perguntas.add(p2);
        perguntas.add(p3);
        perguntas.add(p4);
        perguntas.add(p5);
        perguntas.add(p6);
        perguntas.add(p7);
        perguntas.add(p8);
        perguntas.add(p9);
        perguntas.add(p10);
        perguntas.add(p11);
        perguntas.add(p12);
        perguntas.add(p13);
        perguntas.add(p14);
        perguntas.add(p15);
        perguntas.add(p16);
        perguntas.add(p17);
        perguntas.add(p18);
        perguntas.add(p19);
        perguntas.add(p20);
        perguntas.add(p21);
        perguntas.add(p22);
        perguntas.add(p23);
        perguntas.add(p24);
        perguntas.add(p25);
        perguntas.add(p26);
        perguntas.add(p27);
        perguntas.add(p28);
        perguntas.add(p29);
        perguntas.add(p30);
    }
}
